Skip to content

Comments

feat: push test version#71

Open
Tadas Sutkaitis (fitbeard) wants to merge 4 commits intovexxhost:mainfrom
fitbeard:poc/testing_version
Open

feat: push test version#71
Tadas Sutkaitis (fitbeard) wants to merge 4 commits intovexxhost:mainfrom
fitbeard:poc/testing_version

Conversation

@fitbeard
Copy link
Contributor

No description provided.

Signed-off-by: Tadas Sutkaitis <tadas.sutkaitis@vexxhost.com>
Signed-off-by: Tadas Sutkaitis <tadas.sutkaitis@vexxhost.com>
Signed-off-by: Tadas Sutkaitis <tadas.sutkaitis@vexxhost.com>
Signed-off-by: Tadas Sutkaitis <tadas.sutkaitis@vexxhost.com>
@na50r
Copy link

Rosan Shanmuganathan (na50r) commented Feb 23, 2026

Regarding: this query for Octavia loadbalancers
I raised an issue #70

The Niedbalski exporter returns only loadbalancers that have lb.provisioning_status = "ACTIVE"
Without a condition in the query, it will return all loadbalancers, including the ones with lb.provisioning_status = "DELETED"

So behaviour is not identical and for some users, switching exporters will result in receiving more metrics than before.

Will this be mentioned/addressed or should it be changed to mimic the Niedbalski exporter?

@na50r
Copy link

Rosan Shanmuganathan (na50r) commented Feb 23, 2026

For Glance, the Niedbalski exporter does the following:

allPagesImage, err := images.List(exporter.Client, images.ListOpts{}).AllPages()

The equivlant Openstack CLI command as admin would be:

openstack image list -f value -c id | wc -l

But if we run the query used here:

# Simplified
SELECT * FROM images WHERE deleted=0

We get also images where os_hidden=1, which Openstack API does not expose. So this exporter will not produce the same metrics, it will produce more for some users. In particular, the metric

openstack_glance_images

can have a potentially much higher number than before, causing sudden jumps in dashboards when exporters are switched.

So either we ensure that the exporter only exports os_hidden=0 or we address/mention this in the audit report.

@na50r
Copy link

Rosan Shanmuganathan (na50r) commented Feb 23, 2026

For Neutron, the metrics:

openstack_neutron_subnets_free
openstack_neutron_subnets_total
openstack_neutron_subnets_used

Are missing, there is an implementation in this branch; it involves a bit of math; was adapted from what was found in the Niedbalski exporter

@mnaser
Copy link
Member

Mohammed Naser (mnaser) commented Feb 23, 2026

Tadas Sutkaitis (@fitbeard) mind sharing a diff of both running in an environment?

otherwise, we are looking good, I would like to maybe look at Rosan Shanmuganathan (@na50r) comments as well.

@fitbeard
Copy link
Contributor Author

--- original
+++ database
@@ -1,8 +1,8 @@
 # HELP openstack_cinder_agent_state agent_state
-# TYPE openstack_cinder_agent_state counter
-openstack_cinder_agent_state{adminState="enabled",disabledReason="",hostname="cinder-volume-worker",service="cinder-backup",uuid="9f73bc74-9c0e-04d7-c66a-ff2abf6c2dcd",zone="nova"} 1
-openstack_cinder_agent_state{adminState="enabled",disabledReason="",hostname="cinder-volume-worker",service="cinder-scheduler",uuid="bffb3be2-044c-0633-88ba-e7c4269d59c4",zone="nova"} 1
-openstack_cinder_agent_state{adminState="enabled",disabledReason="",hostname="cinder-volume-worker@standard",service="cinder-volume",uuid="f1292b79-a054-9173-05e2-b6cc0a595ddb",zone="nova"} 1
+# TYPE openstack_cinder_agent_state gauge
+openstack_cinder_agent_state{adminState="enabled",disabledReason="",hostname="cinder-volume-worker",service="cinder-backup",uuid="0fd2a8ff-83a4-4cca-9a89-ddf13d96f90f",zone="nova"} 1
+openstack_cinder_agent_state{adminState="enabled",disabledReason="",hostname="cinder-volume-worker",service="cinder-scheduler",uuid="309fe08a-e92c-47f3-aeb7-05c6105db25b",zone="nova"} 1
+openstack_cinder_agent_state{adminState="enabled",disabledReason="",hostname="cinder-volume-worker@standard",service="cinder-volume",uuid="5a3bb6ed-285a-481e-b14d-aea45472813f",zone="nova"} 1
 # HELP openstack_cinder_limits_backup_max_gb limits_backup_max_gb
 # TYPE openstack_cinder_limits_backup_max_gb gauge
 openstack_cinder_limits_backup_max_gb{tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 1000
@@ -27,12 +27,6 @@
 openstack_cinder_limits_volume_used_gb{tenant="internal_cinder",tenant_id="87a3cbda597340eb8fdb54ee9db9bd6e"} 0
 openstack_cinder_limits_volume_used_gb{tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 0
 openstack_cinder_limits_volume_used_gb{tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} 1
-# HELP openstack_cinder_pool_capacity_free_gb pool_capacity_free_gb
-# TYPE openstack_cinder_pool_capacity_free_gb gauge
-openstack_cinder_pool_capacity_free_gb{name="cinder-volume-worker@standard#standard",vendor_name="Open Source",volume_backend_name="standard"} 338.22
-# HELP openstack_cinder_pool_capacity_total_gb pool_capacity_total_gb
-# TYPE openstack_cinder_pool_capacity_total_gb gauge
-openstack_cinder_pool_capacity_total_gb{name="cinder-volume-worker@standard#standard",vendor_name="Open Source",volume_backend_name="standard"} 339.29
 # HELP openstack_cinder_snapshots snapshots
 # TYPE openstack_cinder_snapshots gauge
 openstack_cinder_snapshots 0
@@ -84,13 +78,13 @@
 openstack_cinder_volumes 2
 # HELP openstack_container_infra_cluster_masters cluster_masters
 # TYPE openstack_container_infra_cluster_masters gauge
-openstack_container_infra_cluster_masters{name="test-1",node_count="1",project_id="",stack_id="kube-o607c",status="CREATE_COMPLETE",uuid="99f68c55-9288-4b7f-9a35-975be3137ca7"} 3
+openstack_container_infra_cluster_masters{name="test-1",node_count="1",project_id="7a96a68dc8264f3d84fafd95a72265c5",stack_id="kube-o607c",status="CREATE_COMPLETE",uuid="99f68c55-9288-4b7f-9a35-975be3137ca7"} 3
 # HELP openstack_container_infra_cluster_nodes cluster_nodes
 # TYPE openstack_container_infra_cluster_nodes gauge
-openstack_container_infra_cluster_nodes{master_count="3",name="test-1",project_id="",stack_id="kube-o607c",status="CREATE_COMPLETE",uuid="99f68c55-9288-4b7f-9a35-975be3137ca7"} 1
+openstack_container_infra_cluster_nodes{master_count="3",name="test-1",project_id="7a96a68dc8264f3d84fafd95a72265c5",stack_id="kube-o607c",status="CREATE_COMPLETE",uuid="99f68c55-9288-4b7f-9a35-975be3137ca7"} 1
 # HELP openstack_container_infra_cluster_status cluster_status
 # TYPE openstack_container_infra_cluster_status gauge
-openstack_container_infra_cluster_status{master_count="3",name="test-1",node_count="1",project_id="",stack_id="kube-o607c",status="CREATE_COMPLETE",uuid="99f68c55-9288-4b7f-9a35-975be3137ca7"} 0
+openstack_container_infra_cluster_status{master_count="3",name="test-1",node_count="1",project_id="7a96a68dc8264f3d84fafd95a72265c5",stack_id="kube-o607c",status="CREATE_COMPLETE",uuid="99f68c55-9288-4b7f-9a35-975be3137ca7"} 0
 # HELP openstack_container_infra_total_clusters total_clusters
 # TYPE openstack_container_infra_total_clusters gauge
 openstack_container_infra_total_clusters 1
@@ -100,6 +94,7 @@
 # HELP openstack_glance_image_bytes image_bytes
 # TYPE openstack_glance_image_bytes gauge
 openstack_glance_image_bytes{id="04ded955-f2fd-4aa9-8033-d1bf1f1e1812",name="test-store-new",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 9.0738432e+08
+openstack_glance_image_bytes{id="06511717-85e8-47de-ad86-4efffb2c030a",name="manila-service-image",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 2.740453376e+09
 openstack_glance_image_bytes{id="34c02e0c-9093-48e9-b6f8-205bd96d8185",name="manila-service-image",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 2.738814976e+09
 openstack_glance_image_bytes{id="499bdb1f-b0c4-4455-a1d3-7faa0b9bf067",name="cirros",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 1.17440512e+08
 openstack_glance_image_bytes{id="62588da6-9d55-4ede-9d63-8f2695aba9a5",name="amphora-x64-haproxy",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 2.147483648e+09
@@ -123,9 +118,10 @@
 openstack_glance_image_created_at{hidden="false",id="dbe316a9-c474-4197-9f66-e0a04b98f763",name="test-store",status="active",tenant_id="da457edfad314ed98fc84ef5e7d37f37",visibility="public"} 1.761052107e+09
 openstack_glance_image_created_at{hidden="false",id="f82a01b6-55c2-47f7-ac46-8d0189a241e1",name="debian-13-kube-v1.32.10-test",status="active",tenant_id="da457edfad314ed98fc84ef5e7d37f37",visibility="public"} 1.768908854e+09
 openstack_glance_image_created_at{hidden="false",id="fbd28fd6-e2f9-4e8f-a4b1-32bce7652c11",name="ubuntu-2204-kube-v1.31.7-slim",status="active",tenant_id="da457edfad314ed98fc84ef5e7d37f37",visibility="public"} 1.756995484e+09
+openstack_glance_image_created_at{hidden="true",id="06511717-85e8-47de-ad86-4efffb2c030a",name="manila-service-image",status="active",tenant_id="da457edfad314ed98fc84ef5e7d37f37",visibility="private"} 1.758031542e+09
 # HELP openstack_glance_images images
 # TYPE openstack_glance_images gauge
-openstack_glance_images 11
+openstack_glance_images 12
 # HELP openstack_glance_up up
 # TYPE openstack_glance_up gauge
 openstack_glance_up 1
@@ -194,7 +190,7 @@
 openstack_identity_up 1
 # HELP openstack_identity_users users
 # TYPE openstack_identity_users gauge
-openstack_identity_users 2
+openstack_identity_users 17
 # HELP openstack_loadbalancer_amphora_status amphora_status
 # TYPE openstack_loadbalancer_amphora_status gauge
 openstack_loadbalancer_amphora_status{cert_expiration="2026-03-15T18:55:00Z",compute_id="0e8ba6f6-09f8-40d9-9fd5-5101d9b45215",ha_ip="10.16.0.90",id="4249dbcb-99e3-4524-80aa-ad0cc252ad3b",lb_network_ip="172.24.0.44",loadbalancer_id="c82db071-757a-490f-916e-0af0a05a48ce",role="STANDALONE",status="ALLOCATED"} 1
@@ -216,21 +212,6 @@
 # HELP openstack_loadbalancer_up up
 # TYPE openstack_loadbalancer_up gauge
 openstack_loadbalancer_up 1
-# HELP openstack_neutron_agent_state agent_state
-# TYPE openstack_neutron_agent_state counter
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="compute1.lab.bimbam.io",id="516a1ff9-58ca-49d5-a960-1896f3275c2f",service="ovn-controller"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="compute1.lab.bimbam.io",id="947d8192-c761-5648-af66-378abde811fc",service="neutron-ovn-metadata-agent"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="compute2.lab.bimbam.io",id="27406fd3-baf7-54b8-9ed1-55974bb80d0a",service="neutron-ovn-metadata-agent"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="compute2.lab.bimbam.io",id="db50b44b-476d-49ec-9c46-d00f4dd583b4",service="ovn-controller"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="controller1.lab.bimbam.io",id="38988416-45ed-5cac-82b4-4a986d22f97d",service="neutron-ovn-metadata-agent"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="controller1.lab.bimbam.io",id="834ab4e9-08fe-5bd4-81c4-2d10eaa51965",service="neutron-ovn-vpn-agent"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="controller1.lab.bimbam.io",id="fb12da2f-77d1-4518-9983-d611215cb665",service="ovn-controller"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="controller2.lab.bimbam.io",id="21b8fca9-373c-4b82-b2c5-28f42ef3653c",service="ovn-controller"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="controller2.lab.bimbam.io",id="3d071239-0f3a-5410-ab7a-040b9692ae55",service="neutron-ovn-vpn-agent"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="controller2.lab.bimbam.io",id="46857fe1-9ce9-5191-b4eb-9e907b28536b",service="neutron-ovn-metadata-agent"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="controller3.lab.bimbam.io",id="2de99d79-a32e-5d3c-b000-72a45bc9a185",service="neutron-ovn-metadata-agent"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="controller3.lab.bimbam.io",id="b0a142be-3387-5199-bf1c-b7bd4704cf69",service="neutron-ovn-vpn-agent"} 1
-openstack_neutron_agent_state{adminState="up",availability_zone="nova",hostname="controller3.lab.bimbam.io",id="e2d02dcc-1ae1-4d18-82ac-d3a77dc9643a",service="ovn-controller"} 1
 # HELP openstack_neutron_floating_ip floating_ip
 # TYPE openstack_neutron_floating_ip gauge
 openstack_neutron_floating_ip{floating_ip_address="10.13.55.227",floating_network_id="6c0ae7af-cdef-4450-b607-0c3f4c9bb10a",id="ce919300-9f7e-4f93-98e1-78236fb0f916",project_id="7a96a68dc8264f3d84fafd95a72265c5",router_id="",status="DOWN"} 1
@@ -279,7 +260,7 @@
 openstack_neutron_port{admin_state_up="true",binding_vif_type="ovs",device_owner="compute:nova",fixed_ips="10.13.18.60",mac_address="fa:16:3e:3f:4c:f6",network_id="74917853-7529-46fc-8545-ed70fe691f03",status="ACTIVE",uuid="e9fda3fb-ff33-4b04-b119-0a6f015796c9"} 1
 openstack_neutron_port{admin_state_up="true",binding_vif_type="ovs",device_owner="compute:nova",fixed_ips="10.16.0.113",mac_address="fa:16:3e:0b:4f:b4",network_id="74917853-7529-46fc-8545-ed70fe691f03",status="ACTIVE",uuid="632dcce6-f988-4c83-9d32-4d879ac98db1"} 1
 openstack_neutron_port{admin_state_up="true",binding_vif_type="ovs",device_owner="compute:nova",fixed_ips="172.24.0.44",mac_address="fa:16:3e:eb:68:fc",network_id="ff9ddac6-d6f7-464e-be4c-81ff3debee37",status="ACTIVE",uuid="4d4ab53c-3536-402d-8ec1-b8527c9887d5"} 1
-openstack_neutron_port{admin_state_up="true",binding_vif_type="ovs",device_owner="manila:share",fixed_ips="10.254.0.13,10.254.0.27,10.254.0.35,",mac_address="fa:16:3e:66:6d:75",network_id="2656c700-0697-4a45-be8c-50200d400e4f",status="ACTIVE",uuid="4612e512-a345-4b41-8378-a5182fe36226"} 1
+openstack_neutron_port{admin_state_up="true",binding_vif_type="ovs",device_owner="manila:share",fixed_ips="10.254.0.13,10.254.0.27,10.254.0.35",mac_address="fa:16:3e:66:6d:75",network_id="2656c700-0697-4a45-be8c-50200d400e4f",status="ACTIVE",uuid="4612e512-a345-4b41-8378-a5182fe36226"} 1
 openstack_neutron_port{admin_state_up="true",binding_vif_type="ovs",device_owner="network:router_gateway",fixed_ips="10.13.55.223",mac_address="fa:16:3e:35:5b:68",network_id="6c0ae7af-cdef-4450-b607-0c3f4c9bb10a",status="ACTIVE",uuid="b357b509-dd8a-4df3-896c-e6d96ad8d4c5"} 1
 openstack_neutron_port{admin_state_up="true",binding_vif_type="ovs",device_owner="octavia:health-mgr",fixed_ips="172.24.0.146",mac_address="fa:16:3e:7a:cd:ef",network_id="ff9ddac6-d6f7-464e-be4c-81ff3debee37",status="ACTIVE",uuid="0dbfe3e0-4744-41c2-9a76-b2b5af0888c5"} 1
 openstack_neutron_port{admin_state_up="true",binding_vif_type="ovs",device_owner="octavia:health-mgr",fixed_ips="172.24.1.185",mac_address="fa:16:3e:49:f4:67",network_id="ff9ddac6-d6f7-464e-be4c-81ff3debee37",status="ACTIVE",uuid="431d4ed6-074b-47bd-914d-8ca7be70df75"} 1
@@ -293,8 +274,8 @@
 openstack_neutron_port{admin_state_up="true",binding_vif_type="unbound",device_owner="",fixed_ips="10.254.0.28",mac_address="fa:16:3e:76:cf:6e",network_id="2656c700-0697-4a45-be8c-50200d400e4f",status="DOWN",uuid="1c1c4eb6-d59d-42a2-9c0c-7047431f1760"} 1
 openstack_neutron_port{admin_state_up="true",binding_vif_type="unbound",device_owner="",fixed_ips="10.254.0.3",mac_address="fa:16:3e:50:f6:71",network_id="2656c700-0697-4a45-be8c-50200d400e4f",status="DOWN",uuid="9f7b8385-0192-4a26-bd87-b92a3eda346a"} 1
 openstack_neutron_port{admin_state_up="true",binding_vif_type="unbound",device_owner="network:distributed",fixed_ips="",mac_address="fa:16:3e:24:e4:c2",network_id="6c0ae7af-cdef-4450-b607-0c3f4c9bb10a",status="DOWN",uuid="1ee67e5b-0cad-45ff-81cd-47230cd23677"} 1
-openstack_neutron_port{admin_state_up="true",binding_vif_type="unbound",device_owner="network:distributed",fixed_ips="10.13.17.2,10.13.18.2,10.16.0.2,",mac_address="fa:16:3e:c3:da:38",network_id="74917853-7529-46fc-8545-ed70fe691f03",status="DOWN",uuid="1cd7c547-bb10-44cd-ad48-f71f7fa29546"} 1
-openstack_neutron_port{admin_state_up="true",binding_vif_type="unbound",device_owner="network:distributed",fixed_ips="10.254.0.1,10.254.0.17,10.254.0.33,",mac_address="fa:16:3e:20:27:38",network_id="2656c700-0697-4a45-be8c-50200d400e4f",status="DOWN",uuid="54f08224-2fa3-45c7-a92a-ecd57a489a2e"} 1
+openstack_neutron_port{admin_state_up="true",binding_vif_type="unbound",device_owner="network:distributed",fixed_ips="10.13.17.2,10.13.18.2,10.16.0.2",mac_address="fa:16:3e:c3:da:38",network_id="74917853-7529-46fc-8545-ed70fe691f03",status="DOWN",uuid="1cd7c547-bb10-44cd-ad48-f71f7fa29546"} 1
+openstack_neutron_port{admin_state_up="true",binding_vif_type="unbound",device_owner="network:distributed",fixed_ips="10.254.0.1,10.254.0.17,10.254.0.33",mac_address="fa:16:3e:20:27:38",network_id="2656c700-0697-4a45-be8c-50200d400e4f",status="DOWN",uuid="54f08224-2fa3-45c7-a92a-ecd57a489a2e"} 1
 openstack_neutron_port{admin_state_up="true",binding_vif_type="unbound",device_owner="network:distributed",fixed_ips="172.24.0.1",mac_address="fa:16:3e:1c:56:a5",network_id="ff9ddac6-d6f7-464e-be4c-81ff3debee37",status="DOWN",uuid="9f385db7-533a-499d-95bc-c1a2a6f055c5"} 1
 openstack_neutron_port{admin_state_up="true",binding_vif_type="unbound",device_owner="network:floatingip",fixed_ips="10.13.55.227",mac_address="fa:16:3e:60:b3:40",network_id="6c0ae7af-cdef-4450-b607-0c3f4c9bb10a",status="N/A",uuid="970e6938-d36a-4049-a539-518f354f25ab"} 1
 openstack_neutron_port{admin_state_up="true",binding_vif_type="unbound",device_owner="network:floatingip",fixed_ips="10.13.55.238",mac_address="fa:16:3e:35:03:98",network_id="6c0ae7af-cdef-4450-b607-0c3f4c9bb10a",status="N/A",uuid="c9856f99-7548-489c-8402-7fe2855010ee"} 1
@@ -477,6 +458,10 @@
 # HELP openstack_nova_availability_zones availability_zones
 # TYPE openstack_nova_availability_zones gauge
 openstack_nova_availability_zones 1
+# HELP openstack_nova_current_workload current_workload
+# TYPE openstack_nova_current_workload gauge
+openstack_nova_current_workload{aggregates="",availability_zone="",hostname="compute1.lab.bimbam.io"} 0
+openstack_nova_current_workload{aggregates="",availability_zone="",hostname="compute2.lab.bimbam.io"} 0
 # HELP openstack_nova_flavor flavor
 # TYPE openstack_nova_flavor gauge
 openstack_nova_flavor{disk="0",id="9461588e-82a5-402d-a3a7-9f858b213117",is_public="false",name="m1.amphora",ram="2048",vcpus="2"} 1
@@ -488,238 +473,217 @@
 # HELP openstack_nova_flavors flavors
 # TYPE openstack_nova_flavors gauge
 openstack_nova_flavors 6
+# HELP openstack_nova_free_disk_bytes free_disk_bytes
+# TYPE openstack_nova_free_disk_bytes gauge
+openstack_nova_free_disk_bytes{aggregates="",availability_zone="",hostname="compute1.lab.bimbam.io"} 3.8654705664e+10
+openstack_nova_free_disk_bytes{aggregates="",availability_zone="",hostname="compute2.lab.bimbam.io"} 3.8654705664e+10
 # HELP openstack_nova_limits_instances_max limits_instances_max
 # TYPE openstack_nova_limits_instances_max gauge
-openstack_nova_limits_instances_max{tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} -1
-openstack_nova_limits_instances_max{tenant="internal_cinder",tenant_id="87a3cbda597340eb8fdb54ee9db9bd6e"} 10
-openstack_nova_limits_instances_max{tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 10
-openstack_nova_limits_instances_max{tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} -1
+openstack_nova_limits_instances_max{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} -1
+openstack_nova_limits_instances_max{domain_id="default",tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} -1
+openstack_nova_limits_instances_max{domain_id="default",tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 10
 # HELP openstack_nova_limits_instances_used limits_instances_used
 # TYPE openstack_nova_limits_instances_used gauge
-openstack_nova_limits_instances_used{tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 1
-openstack_nova_limits_instances_used{tenant="internal_cinder",tenant_id="87a3cbda597340eb8fdb54ee9db9bd6e"} 0
-openstack_nova_limits_instances_used{tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 4
-openstack_nova_limits_instances_used{tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} 0
+openstack_nova_limits_instances_used{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} 0
+openstack_nova_limits_instances_used{domain_id="default",tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 1
+openstack_nova_limits_instances_used{domain_id="default",tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 4
 # HELP openstack_nova_limits_memory_max limits_memory_max
 # TYPE openstack_nova_limits_memory_max gauge
-openstack_nova_limits_memory_max{tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} -1
-openstack_nova_limits_memory_max{tenant="internal_cinder",tenant_id="87a3cbda597340eb8fdb54ee9db9bd6e"} 51200
-openstack_nova_limits_memory_max{tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 51200
-openstack_nova_limits_memory_max{tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} -1
+openstack_nova_limits_memory_max{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} -1
+openstack_nova_limits_memory_max{domain_id="default",tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} -1
+openstack_nova_limits_memory_max{domain_id="default",tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 51200
 # HELP openstack_nova_limits_memory_used limits_memory_used
 # TYPE openstack_nova_limits_memory_used gauge
-openstack_nova_limits_memory_used{tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 2048
-openstack_nova_limits_memory_used{tenant="internal_cinder",tenant_id="87a3cbda597340eb8fdb54ee9db9bd6e"} 0
-openstack_nova_limits_memory_used{tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 16384
-openstack_nova_limits_memory_used{tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} 0
+openstack_nova_limits_memory_used{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} 0
+openstack_nova_limits_memory_used{domain_id="default",tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 2048
+openstack_nova_limits_memory_used{domain_id="default",tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 16384
 # HELP openstack_nova_limits_vcpus_max limits_vcpus_max
 # TYPE openstack_nova_limits_vcpus_max gauge
-openstack_nova_limits_vcpus_max{tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} -1
-openstack_nova_limits_vcpus_max{tenant="internal_cinder",tenant_id="87a3cbda597340eb8fdb54ee9db9bd6e"} 20
-openstack_nova_limits_vcpus_max{tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 20
-openstack_nova_limits_vcpus_max{tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} -1
+openstack_nova_limits_vcpus_max{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} -1
+openstack_nova_limits_vcpus_max{domain_id="default",tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} -1
+openstack_nova_limits_vcpus_max{domain_id="default",tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 20
 # HELP openstack_nova_limits_vcpus_used limits_vcpus_used
 # TYPE openstack_nova_limits_vcpus_used gauge
-openstack_nova_limits_vcpus_used{tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 2
-openstack_nova_limits_vcpus_used{tenant="internal_cinder",tenant_id="87a3cbda597340eb8fdb54ee9db9bd6e"} 0
-openstack_nova_limits_vcpus_used{tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 8
-openstack_nova_limits_vcpus_used{tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} 0
+openstack_nova_limits_vcpus_used{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",tenant_id="37c05c43a57d419097dce9eee2769027"} 0
+openstack_nova_limits_vcpus_used{domain_id="default",tenant="admin",tenant_id="da457edfad314ed98fc84ef5e7d37f37"} 2
+openstack_nova_limits_vcpus_used{domain_id="default",tenant="mylabs1",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 8
+# HELP openstack_nova_local_storage_available_bytes local_storage_available_bytes
+# TYPE openstack_nova_local_storage_available_bytes gauge
+openstack_nova_local_storage_available_bytes{aggregates="",availability_zone="",hostname="compute1.lab.bimbam.io"} 3.8654705664e+10
+openstack_nova_local_storage_available_bytes{aggregates="",availability_zone="",hostname="compute2.lab.bimbam.io"} 3.8654705664e+10
+# HELP openstack_nova_local_storage_used_bytes local_storage_used_bytes
+# TYPE openstack_nova_local_storage_used_bytes gauge
+openstack_nova_local_storage_used_bytes{aggregates="",availability_zone="",hostname="compute1.lab.bimbam.io"} 8.589934592e+10
+openstack_nova_local_storage_used_bytes{aggregates="",availability_zone="",hostname="compute2.lab.bimbam.io"} 8.589934592e+10
+# HELP openstack_nova_memory_available_bytes memory_available_bytes
+# TYPE openstack_nova_memory_available_bytes gauge
+openstack_nova_memory_available_bytes{aggregates="",availability_zone="",hostname="compute1.lab.bimbam.io"} 2.1998075904e+10
+openstack_nova_memory_available_bytes{aggregates="",availability_zone="",hostname="compute2.lab.bimbam.io"} 7.25614592e+09
+# HELP openstack_nova_memory_used_bytes memory_used_bytes
+# TYPE openstack_nova_memory_used_bytes gauge
+openstack_nova_memory_used_bytes{aggregates="",availability_zone="",hostname="compute1.lab.bimbam.io"} 1.1274289152e+10
+openstack_nova_memory_used_bytes{aggregates="",availability_zone="",hostname="compute2.lab.bimbam.io"} 9.126805504e+09
 # HELP openstack_nova_quota_cores quota_cores
 # TYPE openstack_nova_quota_cores gauge
-openstack_nova_quota_cores{tenant="admin",type="in_use"} 2
-openstack_nova_quota_cores{tenant="admin",type="limit"} -1
-openstack_nova_quota_cores{tenant="admin",type="reserved"} 0
-openstack_nova_quota_cores{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_cores{tenant="internal_cinder",type="limit"} 20
-openstack_nova_quota_cores{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_cores{tenant="mylabs1",type="in_use"} 8
-openstack_nova_quota_cores{tenant="mylabs1",type="limit"} 20
-openstack_nova_quota_cores{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_cores{tenant="service",type="in_use"} 0
-openstack_nova_quota_cores{tenant="service",type="limit"} -1
-openstack_nova_quota_cores{tenant="service",type="reserved"} 0
+openstack_nova_quota_cores{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_cores{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} -1
+openstack_nova_quota_cores{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_cores{domain_id="default",tenant="admin",type="in_use"} 2
+openstack_nova_quota_cores{domain_id="default",tenant="admin",type="limit"} -1
+openstack_nova_quota_cores{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_cores{domain_id="default",tenant="mylabs1",type="in_use"} 8
+openstack_nova_quota_cores{domain_id="default",tenant="mylabs1",type="limit"} 20
+openstack_nova_quota_cores{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_fixed_ips quota_fixed_ips
 # TYPE openstack_nova_quota_fixed_ips gauge
-openstack_nova_quota_fixed_ips{tenant="admin",type="in_use"} 0
-openstack_nova_quota_fixed_ips{tenant="admin",type="limit"} 0
-openstack_nova_quota_fixed_ips{tenant="admin",type="reserved"} 0
-openstack_nova_quota_fixed_ips{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_fixed_ips{tenant="internal_cinder",type="limit"} 0
-openstack_nova_quota_fixed_ips{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_fixed_ips{tenant="mylabs1",type="in_use"} 0
-openstack_nova_quota_fixed_ips{tenant="mylabs1",type="limit"} 0
-openstack_nova_quota_fixed_ips{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_fixed_ips{tenant="service",type="in_use"} 0
-openstack_nova_quota_fixed_ips{tenant="service",type="limit"} 0
-openstack_nova_quota_fixed_ips{tenant="service",type="reserved"} 0
+openstack_nova_quota_fixed_ips{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_fixed_ips{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} -1
+openstack_nova_quota_fixed_ips{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_fixed_ips{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_fixed_ips{domain_id="default",tenant="admin",type="limit"} -1
+openstack_nova_quota_fixed_ips{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_fixed_ips{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_fixed_ips{domain_id="default",tenant="mylabs1",type="limit"} -1
+openstack_nova_quota_fixed_ips{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_floating_ips quota_floating_ips
 # TYPE openstack_nova_quota_floating_ips gauge
-openstack_nova_quota_floating_ips{tenant="admin",type="in_use"} 0
-openstack_nova_quota_floating_ips{tenant="admin",type="limit"} 0
-openstack_nova_quota_floating_ips{tenant="admin",type="reserved"} 0
-openstack_nova_quota_floating_ips{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_floating_ips{tenant="internal_cinder",type="limit"} 0
-openstack_nova_quota_floating_ips{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_floating_ips{tenant="mylabs1",type="in_use"} 0
-openstack_nova_quota_floating_ips{tenant="mylabs1",type="limit"} 0
-openstack_nova_quota_floating_ips{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_floating_ips{tenant="service",type="in_use"} 0
-openstack_nova_quota_floating_ips{tenant="service",type="limit"} 0
-openstack_nova_quota_floating_ips{tenant="service",type="reserved"} 0
+openstack_nova_quota_floating_ips{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_floating_ips{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} -1
+openstack_nova_quota_floating_ips{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_floating_ips{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_floating_ips{domain_id="default",tenant="admin",type="limit"} -1
+openstack_nova_quota_floating_ips{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_floating_ips{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_floating_ips{domain_id="default",tenant="mylabs1",type="limit"} -1
+openstack_nova_quota_floating_ips{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_injected_file_content_bytes quota_injected_file_content_bytes
 # TYPE openstack_nova_quota_injected_file_content_bytes gauge
-openstack_nova_quota_injected_file_content_bytes{tenant="admin",type="in_use"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="admin",type="limit"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="admin",type="reserved"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="internal_cinder",type="limit"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="mylabs1",type="in_use"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="mylabs1",type="limit"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="service",type="in_use"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="service",type="limit"} 0
-openstack_nova_quota_injected_file_content_bytes{tenant="service",type="reserved"} 0
+openstack_nova_quota_injected_file_content_bytes{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_injected_file_content_bytes{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} 10240
+openstack_nova_quota_injected_file_content_bytes{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_injected_file_content_bytes{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_injected_file_content_bytes{domain_id="default",tenant="admin",type="limit"} 10240
+openstack_nova_quota_injected_file_content_bytes{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_injected_file_content_bytes{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_injected_file_content_bytes{domain_id="default",tenant="mylabs1",type="limit"} 10240
+openstack_nova_quota_injected_file_content_bytes{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_injected_file_path_bytes quota_injected_file_path_bytes
 # TYPE openstack_nova_quota_injected_file_path_bytes gauge
-openstack_nova_quota_injected_file_path_bytes{tenant="admin",type="in_use"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="admin",type="limit"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="admin",type="reserved"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="internal_cinder",type="limit"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="mylabs1",type="in_use"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="mylabs1",type="limit"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="service",type="in_use"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="service",type="limit"} 0
-openstack_nova_quota_injected_file_path_bytes{tenant="service",type="reserved"} 0
+openstack_nova_quota_injected_file_path_bytes{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_injected_file_path_bytes{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} 255
+openstack_nova_quota_injected_file_path_bytes{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_injected_file_path_bytes{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_injected_file_path_bytes{domain_id="default",tenant="admin",type="limit"} 255
+openstack_nova_quota_injected_file_path_bytes{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_injected_file_path_bytes{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_injected_file_path_bytes{domain_id="default",tenant="mylabs1",type="limit"} 255
+openstack_nova_quota_injected_file_path_bytes{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_injected_files quota_injected_files
 # TYPE openstack_nova_quota_injected_files gauge
-openstack_nova_quota_injected_files{tenant="admin",type="in_use"} 0
-openstack_nova_quota_injected_files{tenant="admin",type="limit"} 0
-openstack_nova_quota_injected_files{tenant="admin",type="reserved"} 0
-openstack_nova_quota_injected_files{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_injected_files{tenant="internal_cinder",type="limit"} 0
-openstack_nova_quota_injected_files{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_injected_files{tenant="mylabs1",type="in_use"} 0
-openstack_nova_quota_injected_files{tenant="mylabs1",type="limit"} 0
-openstack_nova_quota_injected_files{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_injected_files{tenant="service",type="in_use"} 0
-openstack_nova_quota_injected_files{tenant="service",type="limit"} 0
-openstack_nova_quota_injected_files{tenant="service",type="reserved"} 0
+openstack_nova_quota_injected_files{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_injected_files{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} 5
+openstack_nova_quota_injected_files{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_injected_files{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_injected_files{domain_id="default",tenant="admin",type="limit"} 5
+openstack_nova_quota_injected_files{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_injected_files{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_injected_files{domain_id="default",tenant="mylabs1",type="limit"} 5
+openstack_nova_quota_injected_files{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_instances quota_instances
 # TYPE openstack_nova_quota_instances gauge
-openstack_nova_quota_instances{tenant="admin",type="in_use"} 1
-openstack_nova_quota_instances{tenant="admin",type="limit"} -1
-openstack_nova_quota_instances{tenant="admin",type="reserved"} 0
-openstack_nova_quota_instances{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_instances{tenant="internal_cinder",type="limit"} 10
-openstack_nova_quota_instances{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_instances{tenant="mylabs1",type="in_use"} 4
-openstack_nova_quota_instances{tenant="mylabs1",type="limit"} 10
-openstack_nova_quota_instances{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_instances{tenant="service",type="in_use"} 0
-openstack_nova_quota_instances{tenant="service",type="limit"} -1
-openstack_nova_quota_instances{tenant="service",type="reserved"} 0
+openstack_nova_quota_instances{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_instances{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} -1
+openstack_nova_quota_instances{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_instances{domain_id="default",tenant="admin",type="in_use"} 1
+openstack_nova_quota_instances{domain_id="default",tenant="admin",type="limit"} -1
+openstack_nova_quota_instances{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_instances{domain_id="default",tenant="mylabs1",type="in_use"} 4
+openstack_nova_quota_instances{domain_id="default",tenant="mylabs1",type="limit"} 10
+openstack_nova_quota_instances{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_key_pairs quota_key_pairs
 # TYPE openstack_nova_quota_key_pairs gauge
-openstack_nova_quota_key_pairs{tenant="admin",type="in_use"} 0
-openstack_nova_quota_key_pairs{tenant="admin",type="limit"} 100
-openstack_nova_quota_key_pairs{tenant="admin",type="reserved"} 0
-openstack_nova_quota_key_pairs{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_key_pairs{tenant="internal_cinder",type="limit"} 100
-openstack_nova_quota_key_pairs{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_key_pairs{tenant="mylabs1",type="in_use"} 0
-openstack_nova_quota_key_pairs{tenant="mylabs1",type="limit"} 100
-openstack_nova_quota_key_pairs{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_key_pairs{tenant="service",type="in_use"} 0
-openstack_nova_quota_key_pairs{tenant="service",type="limit"} 100
-openstack_nova_quota_key_pairs{tenant="service",type="reserved"} 0
+openstack_nova_quota_key_pairs{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_key_pairs{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} 100
+openstack_nova_quota_key_pairs{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_key_pairs{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_key_pairs{domain_id="default",tenant="admin",type="limit"} 100
+openstack_nova_quota_key_pairs{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_key_pairs{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_key_pairs{domain_id="default",tenant="mylabs1",type="limit"} 100
+openstack_nova_quota_key_pairs{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_metadata_items quota_metadata_items
 # TYPE openstack_nova_quota_metadata_items gauge
-openstack_nova_quota_metadata_items{tenant="admin",type="in_use"} 0
-openstack_nova_quota_metadata_items{tenant="admin",type="limit"} 128
-openstack_nova_quota_metadata_items{tenant="admin",type="reserved"} 0
-openstack_nova_quota_metadata_items{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_metadata_items{tenant="internal_cinder",type="limit"} 128
-openstack_nova_quota_metadata_items{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_metadata_items{tenant="mylabs1",type="in_use"} 0
-openstack_nova_quota_metadata_items{tenant="mylabs1",type="limit"} 128
-openstack_nova_quota_metadata_items{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_metadata_items{tenant="service",type="in_use"} 0
-openstack_nova_quota_metadata_items{tenant="service",type="limit"} 128
-openstack_nova_quota_metadata_items{tenant="service",type="reserved"} 0
+openstack_nova_quota_metadata_items{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_metadata_items{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} 128
+openstack_nova_quota_metadata_items{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_metadata_items{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_metadata_items{domain_id="default",tenant="admin",type="limit"} 128
+openstack_nova_quota_metadata_items{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_metadata_items{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_metadata_items{domain_id="default",tenant="mylabs1",type="limit"} 128
+openstack_nova_quota_metadata_items{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_ram quota_ram
 # TYPE openstack_nova_quota_ram gauge
-openstack_nova_quota_ram{tenant="admin",type="in_use"} 2048
-openstack_nova_quota_ram{tenant="admin",type="limit"} -1
-openstack_nova_quota_ram{tenant="admin",type="reserved"} 0
-openstack_nova_quota_ram{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_ram{tenant="internal_cinder",type="limit"} 51200
-openstack_nova_quota_ram{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_ram{tenant="mylabs1",type="in_use"} 16384
-openstack_nova_quota_ram{tenant="mylabs1",type="limit"} 51200
-openstack_nova_quota_ram{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_ram{tenant="service",type="in_use"} 0
-openstack_nova_quota_ram{tenant="service",type="limit"} -1
-openstack_nova_quota_ram{tenant="service",type="reserved"} 0
+openstack_nova_quota_ram{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_ram{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} -1
+openstack_nova_quota_ram{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_ram{domain_id="default",tenant="admin",type="in_use"} 2048
+openstack_nova_quota_ram{domain_id="default",tenant="admin",type="limit"} -1
+openstack_nova_quota_ram{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_ram{domain_id="default",tenant="mylabs1",type="in_use"} 16384
+openstack_nova_quota_ram{domain_id="default",tenant="mylabs1",type="limit"} 51200
+openstack_nova_quota_ram{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_security_group_rules quota_security_group_rules
 # TYPE openstack_nova_quota_security_group_rules gauge
-openstack_nova_quota_security_group_rules{tenant="admin",type="in_use"} 0
-openstack_nova_quota_security_group_rules{tenant="admin",type="limit"} 0
-openstack_nova_quota_security_group_rules{tenant="admin",type="reserved"} 0
-openstack_nova_quota_security_group_rules{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_security_group_rules{tenant="internal_cinder",type="limit"} 0
-openstack_nova_quota_security_group_rules{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_security_group_rules{tenant="mylabs1",type="in_use"} 0
-openstack_nova_quota_security_group_rules{tenant="mylabs1",type="limit"} 0
-openstack_nova_quota_security_group_rules{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_security_group_rules{tenant="service",type="in_use"} 0
-openstack_nova_quota_security_group_rules{tenant="service",type="limit"} 0
-openstack_nova_quota_security_group_rules{tenant="service",type="reserved"} 0
+openstack_nova_quota_security_group_rules{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_security_group_rules{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} -1
+openstack_nova_quota_security_group_rules{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_security_group_rules{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_security_group_rules{domain_id="default",tenant="admin",type="limit"} -1
+openstack_nova_quota_security_group_rules{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_security_group_rules{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_security_group_rules{domain_id="default",tenant="mylabs1",type="limit"} -1
+openstack_nova_quota_security_group_rules{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_security_groups quota_security_groups
 # TYPE openstack_nova_quota_security_groups gauge
-openstack_nova_quota_security_groups{tenant="admin",type="in_use"} 0
-openstack_nova_quota_security_groups{tenant="admin",type="limit"} 10
-openstack_nova_quota_security_groups{tenant="admin",type="reserved"} 0
-openstack_nova_quota_security_groups{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_security_groups{tenant="internal_cinder",type="limit"} 10
-openstack_nova_quota_security_groups{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_security_groups{tenant="mylabs1",type="in_use"} 2
-openstack_nova_quota_security_groups{tenant="mylabs1",type="limit"} 10
-openstack_nova_quota_security_groups{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_security_groups{tenant="service",type="in_use"} 0
-openstack_nova_quota_security_groups{tenant="service",type="limit"} 10
-openstack_nova_quota_security_groups{tenant="service",type="reserved"} 0
+openstack_nova_quota_security_groups{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_security_groups{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} 10
+openstack_nova_quota_security_groups{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_security_groups{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_security_groups{domain_id="default",tenant="admin",type="limit"} 10
+openstack_nova_quota_security_groups{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_security_groups{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_security_groups{domain_id="default",tenant="mylabs1",type="limit"} 10
+openstack_nova_quota_security_groups{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_server_group_members quota_server_group_members
 # TYPE openstack_nova_quota_server_group_members gauge
-openstack_nova_quota_server_group_members{tenant="admin",type="in_use"} 0
-openstack_nova_quota_server_group_members{tenant="admin",type="limit"} 10
-openstack_nova_quota_server_group_members{tenant="admin",type="reserved"} 0
-openstack_nova_quota_server_group_members{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_server_group_members{tenant="internal_cinder",type="limit"} 10
-openstack_nova_quota_server_group_members{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_server_group_members{tenant="mylabs1",type="in_use"} 0
-openstack_nova_quota_server_group_members{tenant="mylabs1",type="limit"} 10
-openstack_nova_quota_server_group_members{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_server_group_members{tenant="service",type="in_use"} 0
-openstack_nova_quota_server_group_members{tenant="service",type="limit"} 10
-openstack_nova_quota_server_group_members{tenant="service",type="reserved"} 0
+openstack_nova_quota_server_group_members{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_server_group_members{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} 10
+openstack_nova_quota_server_group_members{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_server_group_members{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_server_group_members{domain_id="default",tenant="admin",type="limit"} 10
+openstack_nova_quota_server_group_members{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_server_group_members{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_server_group_members{domain_id="default",tenant="mylabs1",type="limit"} 10
+openstack_nova_quota_server_group_members{domain_id="default",tenant="mylabs1",type="reserved"} 0
 # HELP openstack_nova_quota_server_groups quota_server_groups
 # TYPE openstack_nova_quota_server_groups gauge
-openstack_nova_quota_server_groups{tenant="admin",type="in_use"} 0
-openstack_nova_quota_server_groups{tenant="admin",type="limit"} 10
-openstack_nova_quota_server_groups{tenant="admin",type="reserved"} 0
-openstack_nova_quota_server_groups{tenant="internal_cinder",type="in_use"} 0
-openstack_nova_quota_server_groups{tenant="internal_cinder",type="limit"} 10
-openstack_nova_quota_server_groups{tenant="internal_cinder",type="reserved"} 0
-openstack_nova_quota_server_groups{tenant="mylabs1",type="in_use"} 2
-openstack_nova_quota_server_groups{tenant="mylabs1",type="limit"} 10
-openstack_nova_quota_server_groups{tenant="mylabs1",type="reserved"} 0
-openstack_nova_quota_server_groups{tenant="service",type="in_use"} 0
-openstack_nova_quota_server_groups{tenant="service",type="limit"} 10
-openstack_nova_quota_server_groups{tenant="service",type="reserved"} 0
+openstack_nova_quota_server_groups{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="in_use"} 0
+openstack_nova_quota_server_groups{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="limit"} 10
+openstack_nova_quota_server_groups{domain_id="8d252c44201545d49a7666b2174b42ed",tenant="service",type="reserved"} 0
+openstack_nova_quota_server_groups{domain_id="default",tenant="admin",type="in_use"} 0
+openstack_nova_quota_server_groups{domain_id="default",tenant="admin",type="limit"} 10
+openstack_nova_quota_server_groups{domain_id="default",tenant="admin",type="reserved"} 0
+openstack_nova_quota_server_groups{domain_id="default",tenant="mylabs1",type="in_use"} 0
+openstack_nova_quota_server_groups{domain_id="default",tenant="mylabs1",type="limit"} 10
+openstack_nova_quota_server_groups{domain_id="default",tenant="mylabs1",type="reserved"} 0
+# HELP openstack_nova_running_vms running_vms
+# TYPE openstack_nova_running_vms gauge
+openstack_nova_running_vms{aggregates="",availability_zone="",hostname="compute1.lab.bimbam.io"} 3
+openstack_nova_running_vms{aggregates="",availability_zone="",hostname="compute2.lab.bimbam.io"} 2
+# HELP openstack_nova_security_groups security_groups
+# TYPE openstack_nova_security_groups gauge
+openstack_nova_security_groups 1
 # HELP openstack_nova_server_local_gb server_local_gb
 # TYPE openstack_nova_server_local_gb gauge
 openstack_nova_server_local_gb{id="0378fcb6-6e66-4d69-bcdf-f578be4db7df",name="kube-o607c-v9zl6-784s6",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 40
@@ -729,24 +693,32 @@
 openstack_nova_server_local_gb{id="e1a1d8bf-3b82-4b2d-b73b-8de4df6bfdf2",name="kube-o607c-v9zl6-47jb9",tenant_id="7a96a68dc8264f3d84fafd95a72265c5"} 40
 # HELP openstack_nova_server_status server_status
 # TYPE openstack_nova_server_status gauge
-openstack_nova_server_status{address_ipv4="",address_ipv6="",availability_zone="nova",flavor_id="<nil>",host_id="4842a0347f95e91d2c520ad984adbe8d4214d195a7e2c69eeaea82df",hypervisor_hostname="compute2.lab.bimbam.io",id="929c06de-4ede-4037-bd37-501220e60fbb",instance_libvirt="instance-000005dc",name="kube-o607c-default-worker-fmbqs-tbtpv-2rkh2",status="ACTIVE",tenant_id="7a96a68dc8264f3d84fafd95a72265c5",user_id="052e580a23da47baaa8f6cf600460139",uuid="929c06de-4ede-4037-bd37-501220e60fbb"} 0
-openstack_nova_server_status{address_ipv4="",address_ipv6="",availability_zone="nova",flavor_id="<nil>",host_id="4842a0347f95e91d2c520ad984adbe8d4214d195a7e2c69eeaea82df",hypervisor_hostname="compute2.lab.bimbam.io",id="e1a1d8bf-3b82-4b2d-b73b-8de4df6bfdf2",instance_libvirt="instance-000005e2",name="kube-o607c-v9zl6-47jb9",status="ACTIVE",tenant_id="7a96a68dc8264f3d84fafd95a72265c5",user_id="052e580a23da47baaa8f6cf600460139",uuid="e1a1d8bf-3b82-4b2d-b73b-8de4df6bfdf2"} 0
-openstack_nova_server_status{address_ipv4="",address_ipv6="",availability_zone="nova",flavor_id="<nil>",host_id="ce962a05daf3597c345e40bb43b1112ef0fcdc75f7f58edaf529ec07",hypervisor_hostname="compute1.lab.bimbam.io",id="0378fcb6-6e66-4d69-bcdf-f578be4db7df",instance_libvirt="instance-000005d9",name="kube-o607c-v9zl6-784s6",status="ACTIVE",tenant_id="7a96a68dc8264f3d84fafd95a72265c5",user_id="052e580a23da47baaa8f6cf600460139",uuid="0378fcb6-6e66-4d69-bcdf-f578be4db7df"} 0
-openstack_nova_server_status{address_ipv4="",address_ipv6="",availability_zone="nova",flavor_id="<nil>",host_id="ce962a05daf3597c345e40bb43b1112ef0fcdc75f7f58edaf529ec07",hypervisor_hostname="compute1.lab.bimbam.io",id="37003426-6366-43fb-8d42-ed10d1a24a30",instance_libvirt="instance-000005df",name="kube-o607c-v9zl6-x8wgs",status="ACTIVE",tenant_id="7a96a68dc8264f3d84fafd95a72265c5",user_id="052e580a23da47baaa8f6cf600460139",uuid="37003426-6366-43fb-8d42-ed10d1a24a30"} 0
-openstack_nova_server_status{address_ipv4="",address_ipv6="",availability_zone="nova",flavor_id="<nil>",host_id="ee2c1b927b73d89a3f2c584435b5a1caf446080cfed8ac5cf44a6e01",hypervisor_hostname="compute1.lab.bimbam.io",id="0e8ba6f6-09f8-40d9-9fd5-5101d9b45215",instance_libvirt="instance-000005d6",name="amphora-4249dbcb-99e3-4524-80aa-ad0cc252ad3b",status="ACTIVE",tenant_id="da457edfad314ed98fc84ef5e7d37f37",user_id="f28046f80fa940f18140bef4acc00ee7",uuid="0e8ba6f6-09f8-40d9-9fd5-5101d9b45215"} 0
+openstack_nova_server_status{address_ipv4="",address_ipv6="",availability_zone="nova",flavor_id="9461588e-82a5-402d-a3a7-9f858b213117",host_id="ee2c1b927b73d89a3f2c584435b5a1caf446080cfed8ac5cf44a6e01",hypervisor_hostname="compute1.lab.bimbam.io",id="0e8ba6f6-09f8-40d9-9fd5-5101d9b45215",instance_libvirt="instance-000005d6",name="amphora-4249dbcb-99e3-4524-80aa-ad0cc252ad3b",status="ACTIVE",tenant_id="da457edfad314ed98fc84ef5e7d37f37",user_id="f28046f80fa940f18140bef4acc00ee7",uuid="0e8ba6f6-09f8-40d9-9fd5-5101d9b45215"} 0
+openstack_nova_server_status{address_ipv4="",address_ipv6="",availability_zone="nova",flavor_id="95ae7865-8e72-4756-9e68-47f2c3f6c9e4",host_id="4842a0347f95e91d2c520ad984adbe8d4214d195a7e2c69eeaea82df",hypervisor_hostname="compute2.lab.bimbam.io",id="929c06de-4ede-4037-bd37-501220e60fbb",instance_libvirt="instance-000005dc",name="kube-o607c-default-worker-fmbqs-tbtpv-2rkh2",status="ACTIVE",tenant_id="7a96a68dc8264f3d84fafd95a72265c5",user_id="052e580a23da47baaa8f6cf600460139",uuid="929c06de-4ede-4037-bd37-501220e60fbb"} 0
+openstack_nova_server_status{address_ipv4="",address_ipv6="",availability_zone="nova",flavor_id="95ae7865-8e72-4756-9e68-47f2c3f6c9e4",host_id="4842a0347f95e91d2c520ad984adbe8d4214d195a7e2c69eeaea82df",hypervisor_hostname="compute2.lab.bimbam.io",id="e1a1d8bf-3b82-4b2d-b73b-8de4df6bfdf2",instance_libvirt="instance-000005e2",name="kube-o607c-v9zl6-47jb9",status="ACTIVE",tenant_id="7a96a68dc8264f3d84fafd95a72265c5",user_id="052e580a23da47baaa8f6cf600460139",uuid="e1a1d8bf-3b82-4b2d-b73b-8de4df6bfdf2"} 0
+openstack_nova_server_status{address_ipv4="",address_ipv6="",availability_zone="nova",flavor_id="95ae7865-8e72-4756-9e68-47f2c3f6c9e4",host_id="ce962a05daf3597c345e40bb43b1112ef0fcdc75f7f58edaf529ec07",hypervisor_hostname="compute1.lab.bimbam.io",id="0378fcb6-6e66-4d69-bcdf-f578be4db7df",instance_libvirt="instance-000005d9",name="kube-o607c-v9zl6-784s6",status="ACTIVE",tenant_id="7a96a68dc8264f3d84fafd95a72265c5",user_id="052e580a23da47baaa8f6cf600460139",uuid="0378fcb6-6e66-4d69-bcdf-f578be4db7df"} 0
+openstack_nova_server_status{address_ipv4="",address_ipv6="",availability_zone="nova",flavor_id="95ae7865-8e72-4756-9e68-47f2c3f6c9e4",host_id="ce962a05daf3597c345e40bb43b1112ef0fcdc75f7f58edaf529ec07",hypervisor_hostname="compute1.lab.bimbam.io",id="37003426-6366-43fb-8d42-ed10d1a24a30",instance_libvirt="instance-000005df",name="kube-o607c-v9zl6-x8wgs",status="ACTIVE",tenant_id="7a96a68dc8264f3d84fafd95a72265c5",user_id="052e580a23da47baaa8f6cf600460139",uuid="37003426-6366-43fb-8d42-ed10d1a24a30"} 0
 # HELP openstack_nova_total_vms total_vms
 # TYPE openstack_nova_total_vms gauge
 openstack_nova_total_vms 5
 # HELP openstack_nova_up up
 # TYPE openstack_nova_up gauge
 openstack_nova_up 1
+# HELP openstack_nova_vcpus_available vcpus_available
+# TYPE openstack_nova_vcpus_available gauge
+openstack_nova_vcpus_available{aggregates="",availability_zone="",hostname="compute1.lab.bimbam.io"} -2
+openstack_nova_vcpus_available{aggregates="",availability_zone="",hostname="compute2.lab.bimbam.io"} 0
+# HELP openstack_nova_vcpus_used vcpus_used
+# TYPE openstack_nova_vcpus_used gauge
+openstack_nova_vcpus_used{aggregates="",availability_zone="",hostname="compute1.lab.bimbam.io"} 6
+openstack_nova_vcpus_used{aggregates="",availability_zone="",hostname="compute2.lab.bimbam.io"} 4
 # HELP openstack_placement_resource_allocation_ratio resource_allocation_ratio
 # TYPE openstack_placement_resource_allocation_ratio gauge
 openstack_placement_resource_allocation_ratio{hostname="compute1.lab.bimbam.io",resourcetype="DISK_GB"} 3
-openstack_placement_resource_allocation_ratio{hostname="compute1.lab.bimbam.io",resourcetype="MEMORY_MB"} 0.8999999761581421
+openstack_placement_resource_allocation_ratio{hostname="compute1.lab.bimbam.io",resourcetype="MEMORY_MB"} 0.9
 openstack_placement_resource_allocation_ratio{hostname="compute1.lab.bimbam.io",resourcetype="VCPU"} 4.5
 openstack_placement_resource_allocation_ratio{hostname="compute2.lab.bimbam.io",resourcetype="DISK_GB"} 3
-openstack_placement_resource_allocation_ratio{hostname="compute2.lab.bimbam.io",resourcetype="MEMORY_MB"} 0.8999999761581421
+openstack_placement_resource_allocation_ratio{hostname="compute2.lab.bimbam.io",resourcetype="MEMORY_MB"} 0.9
 openstack_placement_resource_allocation_ratio{hostname="compute2.lab.bimbam.io",resourcetype="VCPU"} 4.5
 # HELP openstack_placement_resource_reserved resource_reserved
 # TYPE openstack_placement_resource_reserved gauge

@fitbeard
Copy link
Contributor Author

Mohammed Naser (@mnaser) Rosan Shanmuganathan (@na50r) please review. Some changes are introduced on purpose. Like domain_id for metrics with only tenant name as a label.

@na50r
Copy link

Rosan Shanmuganathan (na50r) commented Feb 23, 2026

Like domain_id for metrics with only tenant name as a label.

Tadas Sutkaitis (@fitbeard) Because tenant name can occur as duplicates or be empty? (If they occur as duplicates, the collector will break and the metrics won't be exported I think)
But if you know tenant name is being used, why not use tenant id instead? That one is generated by openstack, so there is a guarantee that it is there.

@fitbeard
Copy link
Contributor Author

Please decide what you want to see - tenant_id or domain_id. Original only shows tenant name. And yes in case of two tenants form two different domains this can end not very well. As we all know original is not perfect. Imo we can improve some things from the beginning.

@mnaser
Copy link
Member

Hey Tadas Sutkaitis (@fitbeard), thanks for sharing the diff! I went through it carefully alongside Rosan Shanmuganathan (@na50r)'s comments. Here's a summary of what looks good, what needs attention, and a few things to double-check:

✅ Looks Good / Acceptable

  • Cinder agent_state counter→gauge: Agent state is an enum, so gauge is the correct type. 👍
  • Cinder pool_capacity_free_gb / pool_capacity_total_gb missing: Understood — this data lives in the scheduler, not the DB. We should remove the empty PoolsCollector stub entirely though so it doesn't register metrics it can never emit.
  • Magnum project_id now populated: This went from broken (empty) to working. Fine.
  • Glance including os_hidden images: Since this exporter is expected to be run by admin/operator-level users, having visibility into all resources is acceptable. No change needed.
  • domain_id label on Nova limits/quotas: Intentional improvement for cross-domain tenant disambiguation. 👍
  • Nova deprecated quota limit values (0 → actual DB values): Even better — we get the real values now.
  • Placement allocation_ratio float precision fix: Improvement.
  • Neutron port fixed_ips trailing comma removed: Bug fix. 👍

🔍 Please Double-Check

  1. Keystone openstack_identity_users (2 → 17): The query in sql/keystone/queries.sql does SELECT ... FROM user with no WHERE clause. Can you verify whether we're picking up soft-deleted users or if this is just all the service accounts that the API didn't expose? If there's a deleted or similar column, we should probably filter on it.

  2. Neutron openstack_neutron_agent_state: Your last commit (79e91b3) adds this metric, but the diff showed it as missing. Can you confirm it's working in your test environment now? (I suspect the diff was captured before that commit.)

  3. Nova internal_cinder tenant missing from quotas/limits: The original exporter showed 4 tenants (admin, internal_cinder, mylabs1, service) but the database exporter only shows 3. Can you check why internal_cinder is dropped? The project resolver filters on is_domain = 0 — is it possible this project isn't resolving correctly?

🔴 Action Items

  1. Octavia soft-deleted records (relates to Rosan Shanmuganathan (@na50r)'s Difference in loadbalancer metrics #70): None of the octavia queries filter out soft-deleted records. Octavia uses a deleted column for soft-deletes, so DELETED load balancers, pools, and amphorae are all being included in the output. Please add WHERE deleted = 0 (or equivalent) to the load_balancer, pool, and amphora queries.

  2. Missing openstack_neutron_subnets_free/total/used metrics: These are important — we have alerts on IP allocation ranges. Rosan Shanmuganathan (@na50r) has an implementation in their branch — can we pull that in?

  3. Nova services.go:85 uses CounterValue: The cinder and neutron agent collectors correctly use GaugeValue, but nova uses CounterValue. Should be GaugeValue for consistency.

  4. Remove the empty PoolsCollector in cinder/pools.go: Describe() registers two metrics but Collect() is empty — better to remove it entirely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants